<?php

require_once(BaseConfig::LoadClass('estadisticas.class.php'  ));
require_once(BaseConfig::LoadClass('tablas_llenado.class.php'));

class PAIDEA_Eje3_TitulacionPorOpcion extends Estadisticas {
  var $strNombreBase;
  
  function PAIDEA_Eje3_TitulacionPorOpcion($strNombreBase) {
    $this->strNombreBase = $strNombreBase;
  }
  
  function __GetConectaObject() {
    $oConecta = new ConectaP("", $this->strNombreBase);
    return $oConecta;
  }
  
  function __DoReporteTCPDF($arrReporte) {
    $oReportePDF = new ReportePDF($this, $arrReporte, "P");
    $oReportePDF->intPaddingLeft  = 10;
    $oReportePDF->intPaddingRight = 10;
    
    return $oReportePDF->DoRender();
  }
  
  function IncluirHTMLDespues() {
    return TablasLlenado::__TemplateSeleccionCarrera($this->strNombreBase, Variables::GetOption('generaciones'), 1, count($this->arrInfoReporte), $this->__ObtenerFormaOpcionesGrafica(false, false, true));
  }
  
  function __ArreglarDatosPrevioGrafica() {
    $this->arrInfoGrafica = $this->arrInfoReporte;
    unset($this->arrInfoGrafica["total"]);
    return parent::__ArreglarDatosPrevioGrafica();
  }
  
  function ObtenerGrafica($strTipoGrafica = "double_pie_color_v") {
    $strPagina  = "";
    $strPagina .= parent::ObtenerGrafica($strTipoGrafica);
    $strPagina .= "<table class='TablaReportes' width='100%' border='1'>";
    $strPagina .= TablasLlenado::__TemplateSeleccionCarrera(
      $this->strNombreBase, 
      Variables::GetOption('generaciones'), 
      1, 1, 
      $this->__ObtenerFormaOpcionesGrafica()
    );
    $strPagina .= "</table>";
    
    return $strPagina;
  }
  
  function __DefaultArregloInfo() {
    $arrResp = array();
    
    $arrResp["generacion"]["Nombre"] = "Generacion";
    $arrResp["generacion"]["Tipo"  ] = "C3";
    $arrResp["periodo"   ]["Nombre"] = "Ciclo Escolar";
    $arrResp["periodo"   ]["Tipo"  ] = "C";
    $arrResp["modalidad" ]["Nombre"] = "Modalidad de Titulacion";
    $arrResp["modalidad" ]["Tipo"  ] = "C";
    $arrResp["total_f"   ]["Nombre"] = "# de Alumnas Tituladas";
    $arrResp["total_f"   ]["Tipo"  ] = "Ix";
    $arrResp["total_f"   ]["Color" ] = "#995555";
    $arrResp["total_m"   ]["Nombre"] = "# de Alumnos Titulados";
    $arrResp["total_m"   ]["Tipo"  ] = "Ix";
    $arrResp["total_m"   ]["Color" ] = "#555599";
    $arrResp["total"     ]["Nombre"] = "TOTAL";
    $arrResp["total"     ]["Tipo"  ] = "Ix";
    
    return $arrResp;
  }
  
  function __DefaultConsultaIni() {
    $strConsulta  = "";
    $strConsulta .= "SELECT ";
    $strConsulta .= "  A.alm_numero_cuenta, ";
    $strConsulta .= "  A.fecha_examen, ";
    $strConsulta .= "  C.alm_sexo, ";
    $strConsulta .= "  D.opcion_nombre, ";
    $strConsulta .= "  B.generacion ";
    $strConsulta .= "FROM titulados AS A ";
    $strConsulta .= "  JOIN view_estadisticas_Egresados AS B ";
    $strConsulta .= "    ON A.alm_numero_cuenta = B.alm_numero_cuenta ";
    $strConsulta .= "  JOIN alumno AS C ";
    $strConsulta .= "    ON A.alm_numero_cuenta = C.alm_numero_cuenta ";
    $strConsulta .= "  JOIN opciones_titulacion AS D ";
    $strConsulta .= "    ON A.opcion_titulacion = D.opcion_titulacion ";
    if(is_array(Variables::GetOption('generaciones'))) {
      $strConsulta .= "WHERE B.generacion IN (" . join(",", Variables::GetOption('generaciones')) . ") ";
    } else {
      $strConsulta .= "WHERE B.generacion = -1 ";
    }
    $strConsulta .= "ORDER BY ";
    $strConsulta .= "  B.generacion, ";
    $strConsulta .= "  A.fecha_examen, ";
    $strConsulta .= "  D.opcion_nombre, ";
    $strConsulta .= "  C.alm_sexo ";
    
    return $strConsulta;
  }
  
  function InitDefaults($strNombreReporte = "", $strOpAgrupar = "") {
    if(!$strNombreReporte) {
      $arrCarreras = TablasLlenado::GetArrayNombresCarreras();
      if($this->strNombreBase) {
        if($strOpAgrupar == "generacion") {
          $strNombreReporte = "Relacion Egreso Titulacion (GENERACION) para " . $arrCarreras[$this->strNombreBase];
        } else if($strOpAgrupar == "periodo") {
          $strNombreReporte = "Relacion Egreso Titulacion (CICLO ESCOLAR) para " . $arrCarreras[$this->strNombreBase];
        }
      } else {
        if($strOpAgrupar == "generacion") {
          $strNombreReporte = "Relacion Egreso Titulacion (GENERACION)";
        } else if($strOpAgrupar == "periodo") {
          $strNombreReporte = "Relacion Egreso Titulacion (CICLO ESCOLAR)";
        }
      }
    }
    $this->Inicializar($strNombreReporte, $this->__DefaultArregloInfo(), $this->__DefaultConsultaIni(), $strOpAgrupar, $this->__DefaultDifHeader(), $this->__DefaultDifColors());
  }
  
  function ManejarReporte($arrReporte) {
    $arrTmp  = array();
    $arrResp = array();
    
    foreach($arrReporte as $arrLineaRep) {
      @$arrTmp[$arrLineaRep["generacion"]][TablasLlenado::PeriodoDesdeFecha($arrLineaRep["fecha_examen"], true, $this->strNombreBase)][$arrLineaRep["opcion_nombre"]][$arrLineaRep["alm_sexo"]]++;
    }
    
    $i = 0;
    foreach($arrTmp as $intGeneracion => $arrInfoGen) {
      foreach($arrInfoGen as $intCiclo => $arrInfoCiclo) {
        foreach($arrInfoCiclo as $strOpcionTit => $arrInfoOpTit) {
          $arrResp[$i]["generacion"] = $intGeneracion;
          $arrResp[$i]["periodo"   ] = $intCiclo;
          $arrResp[$i]["modalidad" ] = $strOpcionTit;
          $arrResp[$i]["total_f"   ] = @$arrInfoOpTit["F"] - 0;
          $arrResp[$i]["total_m"   ] = @$arrInfoOpTit["M"] - 0;
          $arrResp[$i]["total"     ] = @$arrInfoOpTit["F"] + @$arrInfoOpTit["M"];
          
        $i++;
        }
      }
    }
    
    return $arrResp;
  }
}

?>